package cn.micro.system.manage.common.utils;

import cn.micro.system.manage.entity.AssetDimTypeInfo;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

public class TypeHelper {

    //构建树形结构
    public static List<AssetDimTypeInfo> bulidDropTree(List<AssetDimTypeInfo> typeInfoList) {
//        创建集合封装最终数据
        List<AssetDimTypeInfo> trees = new ArrayList<>();
        //遍历所有菜单集合
        for (AssetDimTypeInfo typeInfo:typeInfoList) {
            //找到递归入口，parentid=0
            if(Integer.parseInt(typeInfo.getParentId()) ==0) {
                trees.add(findDropChildren(typeInfo,typeInfoList));
            }
        }
        return trees;
    }

    //从根节点进行递归查询，查询子节点
    // 判断 id =  parentid是否相同，如果相同是子节点，进行数据封装

    public static AssetDimTypeInfo findDropChildren(AssetDimTypeInfo typeInfo,List<AssetDimTypeInfo> treeNodes){
        //遍历递归查找
        for (AssetDimTypeInfo it:treeNodes) {
            //比对
            if(Objects.equals(typeInfo.getId(), it.getParentId())) {
                if(typeInfo.getChildren()==null) {
                    typeInfo.setChildren(new ArrayList<>());
                }
                typeInfo.getChildren().add(findDropChildren(it,treeNodes));
            }
        }
        return typeInfo;
    }

}
